package cn.kinoko.service.common;


import cn.kinoko.model.cnTeam.vo.MemberVO;
import cn.kinoko.model.cnTeam.vo.PositionTreeVO;
import cn.kinoko.model.user.entity.UserInfo;

import java.util.List;
import java.util.Map;

/**
 * 通用api
 * @author kinoko
 * @date 2023/8/11 14:58
 */
public interface CommonService {
    /**
     * 获取当前访问用户
     * @return 获取当前访问用户
     */
    UserInfo currentUser();

    /**
     * 查询对象
     * @param aClass 实体类
     * @param bizId 业务id
     * @return 实体类
     */
    Map<String, Object> queryObj(Class<?> aClass, Long bizId);

    /**
     * 查询对象
     * @param aClass 实体类
     * @param bizIds 业务id
     * @return 实体类
     */
    List<Map<String, Object>> queryObj(Class<?> aClass, List<Long> bizIds);

    /**
     * 处理成员职位
     *
     * @param memberList 成员列表
     * @return 成员视图
     */
    List<MemberVO> handleMemberPosition(List<MemberVO> memberList);

    /**
     * 处理漫画职位树
     *
     * @param memberList 成员列表
     * @return 职位树
     */
    Map<Long, PositionTreeVO> handleMangaPositionTree(List<MemberVO> memberList);

    /**
     * 清理逻辑删除数据
     */
    void clearLogicDelData();
}
